<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>机器学习入门训练数据库与LLM应用指南</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
    <style>
        :root {
            --primary: #4a6fa5;
            --secondary: #6b8cbc;
            --accent: #ff7e5f;
            --light: #f5f7fa;
            --dark: #2c3e50;
            --success: #2ecc71;
            --regression: #3498db;
            --classification: #9b59b6;
        }
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
        
        body {
            background-color: var(--light);
            color: var(--dark);
            line-height: 1.6;
        }
        
        .container {
            max-width: 1400px;
            margin: 0 auto;
            padding: 20px;
        }
        
        header {
            background: linear-gradient(135deg, var(--primary), var(--secondary));
            color: white;
            padding: 40px 0;
            text-align: center;
            border-radius: 0 0 20px 20px;
            margin-bottom: 40px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }
        
        h1 {
            font-size: 2.8rem;
            margin-bottom: 15px;
        }
        
        .subtitle {
            font-size: 1.2rem;
            opacity: 0.9;
            max-width: 800px;
            margin: 0 auto;
        }
        
        .card {
            background: white;
            border-radius: 12px;
            padding: 25px;
            margin-bottom: 30px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        }
        
        .llm-workflow {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            margin: 40px 0;
        }
        
        .step {
            flex: 0 0 30%;
            text-align: center;
            margin-bottom: 20px;
        }
        
        .step-number {
            width: 50px;
            height: 50px;
            background: var(--accent);
            color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 15px;
            font-weight: bold;
            font-size: 1.2rem;
        }
        
        .step-title {
            font-weight: bold;
            margin-bottom: 10px;
            color: var(--primary);
        }
        
        .example {
            background: #f8f9fa;
            border-left: 4px solid var(--accent);
            padding: 15px;
            margin: 20px 0;
            border-radius: 0 8px 8px 0;
        }
        
        .prompt-box {
            background: #2c3e50;
            color: white;
            padding: 15px;
            border-radius: 8px;
            margin: 15px 0;
            font-family: monospace;
            white-space: pre-wrap;
            font-size: 0.9rem;
        }
        
        .response {
            background: #e8f4f8;
            padding: 15px;
            border-radius: 8px;
            margin: 15px 0;
            border-left: 4px solid var(--success);
        }
        
        .two-column {
            display: flex;
            gap: 30px;
            margin-bottom: 40px;
        }
        
        .column {
            flex: 1;
        }
        
        .regression-header {
            background: linear-gradient(135deg, var(--regression), #5dade2);
            color: white;
            padding: 20px;
            border-radius: 12px 12px 0 0;
        }
        
        .classification-header {
            background: linear-gradient(135deg, var(--classification), #bb8fce);
            color: white;
            padding: 20px;
            border-radius: 12px 12px 0 0;
        }
        
        .dataset-card {
            background: white;
            border-radius: 8px;
            padding: 20px;
            margin-bottom: 20px;
            box-shadow: 0 3px 10px rgba(0,0,0,0.08);
            border-left: 4px solid var(--regression);
        }
        
        .classification .dataset-card {
            border-left-color: var(--classification);
        }
        
        .dataset-title {
            font-size: 1.3rem;
            margin-bottom: 10px;
            color: var(--dark);
            display: flex;
            align-items: center;
        }
        
        .dataset-title i {
            margin-right: 10px;
        }
        
        .dataset-desc {
            margin-bottom: 15px;
            color: #555;
        }
        
        .dataset-stats {
            display: flex;
            flex-wrap: wrap;
            gap: 15px;
            margin-bottom: 15px;
        }
        
        .stat {
            background: #f8f9fa;
            padding: 8px 15px;
            border-radius: 20px;
            font-size: 0.9rem;
        }
        
        .mermaid-container {
            background: #f8f9fa;
            padding: 20px;
            border-radius: 8px;
            margin: 20px 0;
            overflow-x: auto;
        }
        
        .workflow-title {
            text-align: center;
            margin: 30px 0 15px;
            color: var(--dark);
            font-size: 1.4rem;
        }
        
        .note {
            background: #fff9e6;
            border-left: 4px solid #f1c40f;
            padding: 15px;
            margin: 20px 0;
            border-radius: 0 8px 8px 0;
        }
        
        .tips-list {
            padding-left: 20px;
            margin: 15px 0;
        }
        
        .tips-list li {
            margin-bottom: 10px;
        }
        
        .highlight {
            color: var(--accent);
            font-weight: bold;
        }
        
        @media (max-width: 1024px) {
            .two-column {
                flex-direction: column;
            }
            
            .step {
                flex: 0 0 48%;
            }
        }
        
        footer {
            text-align: center;
            padding: 30px 0;
            margin-top: 50px;
            color: var(--dark);
            border-top: 1px solid #eaeaea;
        }
    </style>
</head>
<body>
    <header>
        <div class="container">
            <h1>机器学习入门训练数据库与LLM应用指南</h1>
            <p class="subtitle">精选数据集与大语言模型结合，加速机器学习项目开发</p>
        </div>
    </header>
    
    <div class="container">
        <section class="card">
            <h2>🚀 大语言模型如何改变机器学习工作流</h2>
            <p>大语言模型（如GPT系列、Claude等）正在彻底改变我们进行机器学习项目的方式。它们不再是简单的问答工具，而是成为了强大的编程助手、代码生成器和问题解决伙伴。</p>
            
            <div class="llm-workflow">
                <div class="step">
                    <div class="step-number">1</div>
                    <div class="step-title">问题理解</div>
                    <p>与AI讨论项目目标，明确需求</p>
                </div>
                <div class="step">
                    <div class="step-number">2</div>
                    <div class="step-title">方案设计</div>
                    <p>获取算法建议和架构设计</p>
                </div>
                <div class="step">
                    <div class="step-number">3</div>
                    <div class="step-title">代码实现</div>
                    <p>生成可运行的代码框架</p>
                </div>
            </div>
            
            <div class="example">
                <h3>第一步：问题定义与数据理解</h3>
                <p><strong>提示词：</strong></p>
                <div class="prompt-box">我需要使用Scikit-learn构建一个分类模型来识别鸢尾花品种。请帮我分析这个任务，包括：
- 数据集特点
- 适合的算法选择
- 评估指标建议</div>
                
                <p><strong>AI回复要点：</strong></p>
                <div class="response">鸢尾花数据集包含150个样本，3个类别（setosa, versicolor, virginica），每个样本有4个特征（花萼长度、花萼宽度、花瓣长度、花瓣宽度）。

推荐算法：
1. 逻辑回归 - 基线模型，可解释性强
2. 支持向量机 - 小数据集表现良好
3. 随机森林 - 鲁棒性强，无需特征缩放

评估指标：准确率、混淆矩阵、分类报告（精确率、召回率、F1分数）</div>
            </div>
            
            <div class="example">
                <h3>第二步：代码生成与实现</h3>
                <p><strong>提示词：</strong></p>
                <div class="prompt-box">请提供使用Scikit-learn实现鸢尾花分类的完整Python代码，包括：
- 数据加载与探索
- 数据预处理
- 模型训练（使用随机森林）
- 模型评估
- 结果可视化</div>
                
                <p><strong>AI生成的代码框架：</strong></p>
                <div class="response"># 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report

# 加载数据
iris = load_iris()
X, y = iris.data, iris.target

# 划分训练测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 模型训练与评估
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

# 输出结果
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy:.2f}")
print(classification_report(y_test, y_pred, target_names=iris.target_names))</div>
            </div>
            
            <div class="example">
                <h3>第三步：调试与优化</h3>
                <p><strong>提示词：</strong></p>
                <div class="prompt-box">我的模型准确率只有85%，如何提升性能？请提供具体的调优策略。</div>
                
                <p><strong>AI优化建议：</strong></p>
                <div class="response">1. 特征工程：创建新特征如花瓣面积比
2. 超参数调优：使用GridSearchCV优化随机森林参数
3. 数据预处理：尝试标准化或归一化
4. 算法比较：测试SVM、KNN等其他算法
5. 交叉验证：使用5折交叉验证评估模型稳定性</div>
            </div>
        </section>
        
        <div class="two-column">
            <!-- 回归任务列 -->
            <div class="column">
                <div class="regression-header">
                    <h2>📈 回归任务数据集</h2>
                    <p>预测连续数值的机器学习任务</p>
                </div>
                <div class="card">
                    <div class="dataset-card">
                        <h3 class="dataset-title">🏠 波士顿房价数据集</h3>
                        <p class="dataset-desc">经典的房价预测数据集，包含波士顿地区房屋的各种特征和对应的房价中位数。</p>
                        <div class="dataset-stats">
                            <div class="stat">样本数: 506</div>
                            <div class="stat">特征数: 13</div>
                            <div class="stat">目标: 连续值(房价)</div>
                        </div>
                        <p><strong>提示词示例：</strong></p>
                        <div class="prompt-box">使用Scikit-learn的波士顿房价数据集，构建一个线性回归模型预测房价。请提供完整代码，包括数据加载、探索性分析、特征工程、模型训练和评估。</div>
                    </div>
                    
                    <div class="dataset-card">
                        <h3 class="dataset-title">🩺 糖尿病进展数据集</h3>
                        <p class="dataset-desc">基于患者的生理指标预测糖尿病一年后的进展程度，适合医学预测模型入门。</p>
                        <div class="dataset-stats">
                            <div class="stat">样本数: 442</div>
                            <div class="stat">特征数: 10</div>
                            <div class="stat">目标: 连续值(疾病进展)</div>
                        </div>
                        <p><strong>提示词示例：</strong></p>
                        <div class="prompt-box">使用Scikit-learn的糖尿病数据集，构建一个回归模型预测疾病进展。请比较线性回归、决策树和随机森林的表现，并可视化特征重要性。</div>
                    </div>
                    
                    <div class="dataset-card">
                        <h3 class="dataset-title">🚗 汽车MPG数据集</h3>
                        <p class="dataset-desc">基于汽车的各种属性（气缸数、排量、马力等）预测燃油效率（每加仑英里数）。</p>
                        <div class="dataset-stats">
                            <div class="stat">样本数: 398</div>
                            <div class="stat">特征数: 7</div>
                            <div class="stat">目标: 连续值(MPG)</div>
                        </div>
                        <p><strong>提示词示例：</strong></p>
                        <div class="prompt-box">使用UCI的Auto MPG数据集，构建回归模型预测燃油效率。请处理缺失值，进行特征工程，并比较多种回归算法的性能。</div>
                    </div>
                    
                    <div class="workflow-title">回归任务代码框架</div>
                    <div class="mermaid-container">
                        <div class="mermaid">
graph TD
    A[加载回归数据集] --> B[数据探索与可视化]
    B --> C[处理缺失值与异常值]
    C --> D[特征工程与选择]
    D --> E[数据标准化/归一化]
    E --> F[划分训练/测试集]
    F --> G[选择回归模型]
    G --> H[模型训练]
    H --> I[模型预测]
    I --> J[评估指标计算]
    J --> K[结果可视化]
    
    subgraph 模型选择
        G1[线性回归]
        G2[决策树回归]
        G3[随机森林回归]
        G4[梯度提升回归]
    end
    
    subgraph 评估指标
        J1[均方误差 MSE]
        J2[平均绝对误差 MAE]
        J3[R² 决定系数]
    end
    
    G --> G1
    G --> G2
    G --> G3
    G --> G4
    J --> J1
    J --> J2
    J --> J3
                        </div>
                    </div>
                </div>
            </div>
            
            <!-- 分类任务列 -->
            <div class="column classification">
                <div class="classification-header">
                    <h2>🗂️ 分类任务数据集</h2>
                    <p>预测离散类别的机器学习任务</p>
                </div>
                <div class="card">
                    <div class="dataset-card">
                        <h3 class="dataset-title">🌷 鸢尾花数据集</h3>
                        <p class="dataset-desc">最经典的分类数据集，包含三种鸢尾花（Setosa, Versicolour, Virginica）的测量数据。</p>
                        <div class="dataset-stats">
                            <div class="stat">样本数: 150</div>
                            <div class="stat">特征数: 4</div>
                            <div class="stat">类别数: 3</div>
                        </div>
                        <p><strong>提示词示例：</strong></p>
                        <div class="prompt-box">使用Scikit-learn的鸢尾花数据集，构建一个多分类模型识别鸢尾花种类。请提供完整代码，包括数据探索、模型训练、评估和混淆矩阵可视化。</div>
                    </div>
                    
                    <div class="dataset-card">
                        <h3 class="dataset-title">🍷 葡萄酒数据集</h3>
                        <p class="dataset-desc">基于葡萄酒的化学分析结果，识别葡萄酒的产地类别，适合多分类问题实践。</p>
                        <div class="dataset-stats">
                            <div class="stat">样本数: 178</div>
                            <div class="stat">特征数: 13</div>
                            <div class="stat">类别数: 3</div>
                        </div>
                        <p><strong>提示词示例：</strong></p>
                        <div class="prompt-box">使用Scikit-learn的葡萄酒数据集，构建分类模型识别葡萄酒类别。请比较逻辑回归、SVM和随机森林的性能，并分析特征重要性。</div>
                    </div>
                    
                    <div class="dataset-card">
                        <h3 class="dataset-title">📧 垃圾邮件数据集</h3>
                        <p class="dataset-desc">基于邮件文本内容判断是否为垃圾邮件的二分类问题，适合文本分类入门。</p>
                        <div class="dataset-stats">
                            <div class="stat">样本数: 5572</div>
                            <div class="stat">特征: 文本内容</div>
                            <div class="stat">类别数: 2(垃圾/非垃圾)</div>
                        </div>
                        <p><strong>提示词示例：</strong></p>
                        <div class="prompt-box">使用UCI的垃圾邮件数据集，构建文本分类模型识别垃圾邮件。请实现文本预处理、特征提取（如TF-IDF）和分类模型训练。</div>
                    </div>
                    
                    <div class="workflow-title">分类任务代码框架</div>
                    <div class="mermaid-container">
                        <div class="mermaid">
graph TD
    A[加载分类数据集] --> B[数据探索与可视化]
    B --> C[处理类别不平衡]
    C --> D[特征工程与选择]
    D --> E[数据标准化]
    E --> F[划分训练/测试集]
    F --> G[选择分类模型]
    G --> H[模型训练]
    H --> I[模型预测]
    I --> J[评估指标计算]
    J --> K[结果可视化]
    
    subgraph 模型选择
        G1[逻辑回归]
        G2[支持向量机]
        G3[决策树]
        G4[随机森林]
    end
    
    subgraph 评估指标
        J1[准确率]
        J2[精确率与召回率]
        J3[F1分数]
        J4[混淆矩阵]
    end
    
    G --> G1
    G --> G2
    G --> G3
    G --> G4
    J --> J1
    J --> J2
    J --> J3
    J --> J4
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
        <section class="card">
            <h2>🎯 高效提示词撰写技巧</h2>
            <p>与大语言模型有效沟通的关键：</p>
            <ul class="tips-list">
                <li><span class="highlight">明确上下文</span>：说明你正在解决的问题和使用的工具</li>
                <li><span class="highlight">结构化请求</span>：将复杂任务分解为多个步骤</li>
                <li><span class="highlight">提供示例</span>：展示你期望的输入输出格式</li>
                <li><span class="highlight">指定约束</span>：明确时间、资源或技术限制</li>
                <li><span class="highlight">迭代改进</span>：基于初步结果提出更具体的问题</li>
            </ul>
            
            <div class="example">
                <p><strong>高效提示词示例：</strong></p>
                <div class="prompt-box">我是一个机器学习初学者，正在使用Python和Scikit-learn处理一个二分类问题。
数据集有1000个样本，20个特征，目标变量是不平衡的（正例占15%）。
请提供一个完整的解决方案，包括：
1. 处理不平衡数据的策略
2. 适合的算法选择
3. 完整的代码实现
4. 评估不平衡数据集的指标</div>
            </div>
            
            <div class="note">
                <h3>💡 使用提示</h3>
                <p>1. 将这些提示词直接复制到大语言模型(如ChatGPT、Claude等)中，即可获得完整的代码实现</p>
                <p>2. 对于每个数据集，尝试不同的算法和参数，比较它们的性能</p>
                <p>3. 实践时注意数据预处理、特征工程和模型评估的完整流程</p>
                <p>4. 可视化是理解模型行为和结果的重要手段，不要忽略这一步骤</p>
            </div>
        </section>
    </div>
    
    <footer>
        <div class="container">
            <p>机器学习入门训练数据库与LLM应用指南</p>
            <p>时玥颖 Ai+化学 2025.10</p>
        </div>
    </footer>

    <script>
        // 初始化Mermaid
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            securityLevel: 'loose',
            flowchart: {
                useMaxWidth: true,
                htmlLabels: true,
                curve: 'basis'
            }
        });
        
        // 如果Mermaid图表没有正确渲染，尝试重新渲染
        document.addEventListener('DOMContentLoaded', function() {
            setTimeout(function() {
                if (typeof mermaid !== 'undefined') {
                    mermaid.init(undefined, document.querySelectorAll('.mermaid'));
                }
            }, 100);
        });
    </script>
</body>
</html>